package com.dyna.digit.process.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dyna.digit.process.domain.entity.*;
import com.dyna.digit.process.domain.resp.DigitDeclareDetailResp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author Admin
* @description 针对表【digit_declare】的数据库操作Mapper
* @createDate 2023-11-11 16:34:20
* @Entity com.dyna.digit.process.domain.entity.DigitDeclare
*/

@Mapper
public interface DigitDeclareMapper extends BaseMapper<DigitDeclare> {

    /**
     * 保存项目申报信息
     * @param digitDeclare 申报信息
     * @return boolean
     */
    boolean saveDeclare(DigitDeclare digitDeclare);

    /**
     * 保存建设类信息
     * @param jsl 建设类
     * @return boolean
     */
    boolean saveJsl(DigitDeclareBaseJsl jsl);

    /**
     * 保存运维类信息
     * @param ywl ywl
     */
    boolean saveYwl(DigitDeclareBaseYwl ywl);

    /**
     * 保存金额
     * @param digitAmount digitAmount
     * @return int
     */
    boolean saveAmount(@Param("digitAmount") DigitDeclareAmount digitAmount);

    /**
     * 申报项目附件
     * @param files files
     */
    boolean saveFile(DigitDeclareFile files);

    /**
     * 项目申报详情
     * @param projectId 项目id
     * @return DigitDeclareDetailResp
     */
    DigitDeclareDetailResp detail(@Param("projectId") Integer projectId);

    Boolean updateDigitDeclare(@Param("digitDeclares") List<DigitDeclare> digitDeclares);

    /**
     * 删除申报数据
     * @param projectId 项目id
     * @return Boolean
     */
    Boolean delDeclare(@Param("projectId") Integer projectId);

    /**
     * 删除建设类申报数据信息
     * @param projectId 项目id
     * @return Boolean
     */
    Boolean delJsl(@Param("projectId") Integer projectId);

    /**
     * 删除运维类申报数据信息
     * @param projectId 项目id
     * @return Boolean
     */
    Boolean delYwl(@Param("projectId") Integer projectId);

    /**
     * 删除申报金额数据信息
     * @param projectId 项目id
     * @return Boolean
     */
    Boolean delAmount(@Param("projectId") Integer projectId);

    /**
     * 删除申报文件数据信息
     * @param projectId 项目id
     * @return Boolean
     */
    Boolean delFile(@Param("projectId") Integer projectId);

}




